home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)t5.d64 / 4040 commands.c (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  5KB  |  145 lines

  1. 0 REM**********************************
  2. 1 REM
  3. 2 REM      C64 4040 DISK COMMANDS
  4. 3 REM    IEEE INTERFACE IS REQUIRED
  5. 4 REM
  6. 5 REM           DAVID BYRUM
  7. 6 REM      3301 E. FT. LOWELL RD
  8. 7 REM   TUCSON, AZ 85716 / 795-2928
  9. 8 REM
  10. 9 REM**********************************
  11. 100 POKE 53280,4:POKE 53281,6:POKE 788,52:PRINT CHR$(14):GOSUB10000
  12. 110 PRINT"[147][144]********** [129]4040 DISK COMMANDS[144] **********"
  13. 120 PRINTTAB(5)"[144][198] 1  [158]=  [196]UPLICATE [196]ISK ([196]1 = [196]0)"
  14. 125 PRINTTAB(5)"[144][198] 2  [158]=  [195]OPY A FILE FROM [196]0 TO [196]1"
  15. 130 PRINTTAB(5)"[144][198] 3  [158]=  [201]NITIALIZE A [196]RIVE"
  16. 135 PRINTTAB(5)"[144][198] 4  [158]=  [214]ALIDATE A [196]ISK"
  17. 140 PRINTTAB(5)"[144][198] 5  [158]=  [196]ISK [196]IRECTORY"
  18. 145 PRINTTAB(5)"[144][198] 6  [158]=  [198]ORMATE [196]ISK IN [196]RIVE 1"
  19. 150 PRINTTAB(5)"[144][198] 7  [158]=  [196]ETERMINE [196]ISK [197]RROR"
  20. 155 PRINTTAB(5)"[144][198] 8  [158]=  [210]ENAME A FILE"
  21. 170 PRINT"[144][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185][185]"
  22. 200 GETZ$:IF Z$="" THEN 200
  23. 210 IF Z$="[133]" THEN GOSUB 1000 :REM F1 - DUPLICATE DISK (D1=D0)
  24. 215 IF Z$="[137]" THEN GOSUB 1500 :REM F2 - COPY A FILE FROM D0 TO D1
  25. 220 IF Z$="[134]" THEN GOSUB 2500 :REM F3 - INITIALIZE DRIVE 0
  26. 225 IF Z$="[138]" THEN GOSUB 2000 :REM F4 - VALIDATE D1 DISK
  27. 230 IF Z$="[135]" THEN GOSUB 3000 :REM F5 - DISK (null)
  28. 235 IF Z$="[139]" THEN GOSUB 3500 :REM F6 - FORMATE NEW D1 DISK
  29. 240 IF Z$="[136]" THEN GOSUB 4000 :REM F7 - DETERMINE DISK ERROR
  30. 250 IF Z$="[140]" THEN GOSUB 4500 :REM F8 - RENAME A FILE
  31. 260 IF Z$="" THEN GOSUB 5000 :REM CONTROL S - SCRATCH A PROGRAM
  32. 270 IF Z$="" THEN 9000       :REM CONTROL Q - QUIT PROGRAM
  33. 290 GOTO 110
  34. 1000 REM ----- BACKUP D0 TO D1 --------
  35. 1010 POKE 214,23:PRINT"[145][129] [196]UPLICATING [196]ISK IN [144][196]RIVE 0[144] [129]TO [144][196]RIVE 1"
  36. 1020 OPEN 15,8,15
  37. 1030 PRINT#15,"D1=0":GOSUB 4020
  38. 1040 CLOSE 15
  39. 1050 RETURN
  40. 1500 REM ------- COPY A FILE ----------
  41. 1510 POKE 214,23:INPUT"[145][129][208]ROGRAM TO BE COPIED [154]";PG$
  42. 1515 PRINT"[145]                                       "
  43. 1520 PRINT"[145][129] [195][207][208][217][201][206][199][160][155]";PG$;"[129] TO [196]1"
  44. 1530 OPEN 15,8,15
  45. 1540 PRINT#15,"C1:"+PG$+"=0:"+PG$:GOSUB 4020
  46. 1550 CLOSE 15
  47. 1560 RETURN
  48. 2000 REM -------- VALIDATE ------------
  49. 2005 POKE 214,23:INPUT"[145][129][213]SING [196][210][201][214][197] [144]0[129] OR [144]11[157][157][157][159]";DR$
  50. 2010 PRINT"[145]       [129][214]ALIDATING [196]ISK IN [144][196]RIVE ";DR$
  51. 2020 OPEN 15,8,15
  52. 2030 PRINT#15,"V"+DR$:GOSUB 4020
  53. 2040 CLOSE 15
  54. 2050 RETURN
  55. 2500 REM ------- INITIALIZE------------
  56. 2505 POKE 214,23:INPUT"[145][129][213]SING [196][210][201][214][197] [144]0[129] OR [144]10[157][157][157][159]";DR$
  57. 2510 PRINT"[145]         [129][201]NITIALIZING [144][196]RIVE "DR$
  58. 2520 OPEN 15,8,15
  59. 2530 PRINT#15,"I"+DR$:GOSUB 4020
  60. 2540 CLOSE 15
  61. 2550 RETURN
  62. 3000 REM ------- DIRECTORY ------------
  63. 3010 POKE 214,23:INPUT"[145][129][213]SING [196][210][201][214][197] [144]0[129] OR [144]11[157][157][157][159]";DR
  64. 3020 PRINT"[145]                          "
  65. 3030 IF DR<>0 AND DR<>1 THEN3010
  66. 3040 IF DR=0 THEN POKE 839,48:SYS 828:IF E>19 THEN3080
  67. 3050 IF DR=1 THEN POKE 839,49:SYS 828:IF E>19 THEN3080
  68. 3060 PRINTTAB(6)"[144][208]RESS [210]ETURN[144] FOR MENU"
  69. 3070 GETZ$:IF Z$<>CHR$(13) THEN3070
  70. 3080 RETURN
  71. 3500 REM ------- NEW HEADER -----------
  72. 3510 DH$="":POKE 214,23:INPUT"[145][129][196]ISK [200][197][193][196][197][210] [144]";DH$:DH$=LEFT$(DH$,16)
  73. 3520 PRINT"[145]                               "
  74. 3530 IF DH$="" THEN DH$="NEW DISK"
  75. 3540 POKE 214,23:PRINTTAB(9)"[145][129] [198][207][210][205][193][212][201][206][199] [193] [206][197][215][160][196][201][211][203]"
  76. 3550 OPEN 15,8,15
  77. 3560 ID=INT(RND(TI)*100):ID$=STR$(ID)
  78. 3570 PRINT#15,"N1:"+DH$+","+ID$:GOSUB4020
  79. 3580 CLOSE 15
  80. 3590 RETURN
  81. 4000 REM ------- DISK ERROR -----------
  82. 4010 OPEN 15,8,15
  83. 4020 INPUT#15,E,E$
  84. 4025 IF Z$="[136]" THEN 4040
  85. 4030 IF E<20 THEN 4080
  86. 4040 POKE 214,23:PRINT"[145]                                       "
  87. 4050 PRINT"[145] [196]ISK ERROR [129]";E;"[144]- [129]";E$
  88. 4060 PRINTTAB(6)"[144][208]RESS [152][210]ETURN[144] TO CONTINUE[145]"
  89. 4070 GETZ$:IF Z$<>CHR$(13) THEN4070
  90. 4080 CLOSE 15:RETURN
  91. 4500 REM ----- RENAME A FILE ----------
  92. 4510 POKE 214,23:INPUT"[145][129][213]SING [196][210][201][214][197] [144]0[129] OR [144]11[157][157][157][159]";DR$
  93. 4520 PRINT"[145]                          "
  94. 4530 IF DR$<>"0" AND DR$<>"1" THEN4510
  95. 4540 INPUT"[145][129][207]LD [198]ILE [206]AME [159]";OF$
  96. 4550 INPUT"[129][206]EW [198]ILE [206]AME [144]";NF$
  97. 4560 PRINT"[145][145]                                      "
  98. 4570 PRINT"                                      "
  99. 4580 POKE 214,23:PRINT"[145][129][210]ENAMING [159]";OF$;"[129] TO [144]";NF$
  100. 4590 OPEN 15,8,15
  101. 4600 PRINT#15,"R"+DR$+":"+NF$+"="+OF$:GOSUB4020
  102. 4610 CLOSE 15
  103. 4620 RETURN
  104. 5000 REM ----- SCRATCH A FILE ---------
  105. 5010 POKE 214,23:INPUT"[145][129][213]SING [196][210][201][214][197] [144]0[129] OR [144]11[157][157][157][159]";DR$
  106. 5020 PRINT"[145]                          "
  107. 5030 IF DR$<>"0" AND DR$<>"1" THEN4510
  108. 5040 INPUT"[145][129][211]CRATCH [198]ILE [159]";SF$
  109. 5060 PRINT"[145]                                      "
  110. 5080 POKE 214,23:PRINT"[145][129][211]CRATCHING [159]";SF$
  111. 5090 OPEN 15,8,15
  112. 5100 PRINT#15,"S"+DR$+":"+SF$:GOSUB4020
  113. 5110 CLOSE 15
  114. 5120 RETURN
  115. 9000 REM ------ QUIT PROGRAM ----------
  116. 9010 CLOSE 15
  117. 9020 POKE 214,23:PRINTTAB(6)"[145][197]ND OF [208]ROGRAM.... [129][199]OODBYE.[144][145][145]":POKE 788,49:END
  118. 10000 REM----- M.L. DIRECTORY ---------
  119. 10010 PRINT"[147]";TAB(7)"[129][197]NABLING [159][201]NVISIBLE [196]IRECTORY[154]"
  120. 10020 FOR I = 828 TO 971:READ A:POKE I,A:T=T+A:NEXT
  121. 10030 IF T<>19610 THEN PRINT"ERROR IN DATA STATEMENTS[146][154]":END
  122. 10040 IF PEEK(65440)=135 THEN POKE 924,189:REM USE ,221 ON VIC
  123. 10045 RETURN
  124. 10050 DATA 169,1,32,195,255,169,36
  125. 10060 DATA 141,240,3,169,48,141,241
  126. 10070 DATA 3,169,1,162,8,160,0
  127. 10080 DATA 32,186,255,169,2,162,240
  128. 10090 DATA 160,3,32,189,255,32,192
  129. 10100 DATA 255,169,64,32,144,255,162
  130. 10110 DATA 1,32,198,255,32,144,255
  131. 10120 DATA 32,207,255,32,207,255,32
  132. 10130 DATA 207,255,32,207,255,201,0
  133. 10140 DATA 240,58,32,204,255,32,228
  134. 10150 DATA 255,201,32,208,3,32,196
  135. 10160 DATA 3,162,1,32,198,255,32
  136. 10170 DATA 207,255,168,32,207,255,72
  137. 10180 DATA 152,170,104,32,205,221,169
  138. 10190 DATA 32,32,210,255,32,207,255
  139. 10200 DATA 201,0,208,8,169,13,32
  140. 10210 DATA 210,255,76,115,3,32,210
  141. 10220 DATA 255,76,162,3,169,1,32
  142. 10230 DATA 195,255,32,204,255,169,204
  143. 10240 DATA 133,178,96,32,228,255,201
  144. 10250 DATA 32,208,249,96
  145.